In video recording, video coding may include hierarchical picture partition techniques, such as quad-tree based partitioning, which may result in better adaptation to video content. In such techniques, an image frame may be divided into many non-overlapping largest coding units (LCU's). Each LCU may be further partitioned into smaller coding units (CU's) in a quad-tree manner (each unit is divided into four smaller units). The video coder may determine the quad-tree structure of an LCU. Inside a LCU, each CU may have its own CU level syntax variables, such as skip_flag, predMode, partMode, etc. The CU's are encoded one by one with their own syntax variables. For the purpose of discussion below, a LCU may be considered a group of pixels, which includes a plurality of CU's as subgroups of pixels.
Often the video content or some specific video parameters may not vary significantly from CU to CU inside a LCU (or between some subgroups of pixels within a specific group). The CU's may share similar encoding modes and syntax, which means there could be some redundancy among the syntax. Context-adaptive binary arithmetic coding (CABAC), a form of entropy encoding, and some data compression processes may remove some of the redundancy, but may not be optimal.
Thus, there is a need to reduce the redundancy by adaptively grouping the syntax in encoded video data.